// Take a px value and output converted value.
//
// @param number $number
//   A px value to convert.
// @param number|string $context
//   (optional) Only used if em is the $base-unit. The value of the elements/parents
//   font-size if it differs from $base-font-size. Specified as a t-shirt size or
//   value in px.
//
// @return number
//   The number converted to the base unit.
@function output-from-px($number, $context: $base-font-size) {
  @if $base-unit == rem {
    @return typey-output-in-base-unit(($number / $base-font-size));
  }
  @if $base-unit == px {
    @return typey-output-in-base-unit(typey-strip-unit($number));
  }
  @if $base-unit == em {
    @return calculate-em-px($number, $context);
  }
}

// Take a key from the $font-size map and output converted value.
//
// @param string $size
//   A size from the $font-size map.
// @param number|string $context
//   (optional) Only used if em is the $base-unit. The value of the parent
//   font-size if it differs from $base-font-size. Specified as a t-shirt size or
//   value in px.
//
// @return number
//   The selected font-size in $base-unit.
@function output-from-font-size-map($size, $context: $base-font-size) {
  $map-size: map-get($font-size, $size);
  @if $base-unit == rem {
    @return typey-output-in-base-unit(($map-size / $base-font-size));
  }
  @if $base-unit == px {
    @return typey-output-in-base-unit(typey-strip-unit($map-size));
  }
  @if $base-unit == em {
    @return calculate-em-px($map-size, $context);
  }
}

// Take a line-height multipler and output converted value.
//
// @param number $number
//   Multiple of line height to be used.
// @param number|string $context
//   (optional) Only used if em is the $base-unit. The value of the elements/parents
//   font-size if it differs from $base-font-size. Specified as a t-shirt size or
//   value in px.
//
// @return number
//   The value of the line-height multiple converted to the base unit.
@function output-from-multiplier($x, $context: $base-font-size) {
  @if $base-unit == rem {
    @return typey-output-in-base-unit(($x * $base-line-height) / $base-font-size);
  }
  @if $base-unit == px {
    @return typey-output-in-base-unit(typey-strip-unit($x * $base-line-height));
  }
  @if $base-unit == em {
    @return calculate-em-multiplier($x, $context);
  }
}

// Take a line-height ratio and output as em.
//
// @param number $ratio
//   Multiple of the $font-size to be used.
// @param number|string $context
//  (optional) used to ensure function outputs the ratio regardless of whether
//  it is the same as the $base-line-height-ratio.
//
// @return number
//   The ratio in em.
@function output-from-ratio($ratio: $base-line-height-ratio) {
  @return $ratio;
}
